package tipos;

/**
 *
 * Classe que representa o domínio CodigoAeroporto.
 * @author Thiago Stuckert
 **/
public class CodigoReserva {
    /**
     * Constante que representa um codigo de aeroporto.
     */
    private static final int TAM_CODIGO_RESERVA = 5;

    /**
     *  O método validar é responsável por validar um determinado Codigo de
     * Aeroporto.
     *
     *
     * @param codigoReserva Codigo que identifica o aeroporto.
     * caso o codigo de aeroporto seja invalido.
     * @exception NullPointerException
     * @exception IllegalArgumentException
     */
     public static void validar(final String codigoReserva) {
        if (codigoReserva == null) {
            throw new NullPointerException("Codigo de Reserva nulo.");
        }
        if (codigoReserva.length() != TAM_CODIGO_RESERVA) {
            throw new IllegalArgumentException("Codigo de Reserva possui "
                    + "tamanho invalido.");
        }
        for (int i = 0; i < codigoReserva.length(); i++) {
            if (!Character.isDigit(codigoReserva.charAt(i))) {
                throw new IllegalArgumentException("Codigo de Reserva"
                        + " possui caracteres que nao sao numeros.");
            }
        }
    }
}
